package array.diff;

public class CarPooling {

    public boolean carPooling(int[][] trips, int capacity) {
        // 最多有1000个车站
        int[] nums = new int[1001];
        // 构造差分解法
        Difference diff = new Difference(nums);
        for (int[] trip : trips) {
            // 乘客数量
            int val = trip[0];
            // 出发车站
            int i = trip[1];
            // 到达车站
            int j = trip[2];
            // 进行区间操作
            diff.increment(i, j, val);
        }
        int[] res = diff.result(nums);
        // 乘客自始至终都不应该超载
        for (int i = 0; i < res.length; i++) {
            if (capacity < res[i])
                return false;
        }
        return true;
    }
}
